1. Field of the Invention
The present invention relates generally to digital data processing and more particularly to efficient processing of subcode data in optical disc applications.
2. Description of the Related Art
In recent years, computer equipment accessible to average consumers has increased dramatically in processing power, flexibility of configuration, and ease of use. Although it is desirable to have powerful computer equipment, as consumer devices become more powerful, consumers have become accustomed of demanding more from their computer peripheral devices. Computer peripheral devices typically include a computer""s hard drive, floppy disk, compact disc player (CD-ROM), compact disc recordable (CD-R), compact disc rewritable (CD-RW), digital video disc (DVD), and the like. For example, FIG. 1A illustrates a computer system 102 that has both internal and external peripheral devices. The devices in this example can include an internal CD-ROM drive 104 and an external CD-R or CD-RW drive 106. The drives 104 and 106 can then be connected to the motherboard of the computer by way of well known IDE connections, SCSI connections, or USB connections.
In regard to compact discs (e.g., CD-ROMs, CD-Rs, and CD-RWs), the data is arranged on the media in sectors that spiral around the disc. Each sector typically has what is called subcode data that is interleaved throughout the sector. FIG. 1B illustrates an exemplary standard byte of subcode data 110. In practice, each sector will include 98 subcode bytes, and each standard byte of subcode data 110 includes bits P, Q, R, S, T, U, V, and W. Therefore, each sector will have 98 bits of P-subcode, 98 bits of Q-subcode, 98 bits of R-subcode, 98 bits of S-subcode, 98 bits of T-subcode, 98 bits of U-subcode, 98 bits of V-subcode, and 98 bits of W-subcode. The first two bytes of subcode contain no information, and only 96 bytes are used. As is well known, each of these subcode bits may be used for a number of identification purposes, such as video data, text data, and the like. The P-subcode bits are typically used to indicate the start of a track. The 98 bits of Q-subcode are used to ascertain an absolute MSF (minutes, seconds, frames) of a particular sector, or for other processing and/or identification purposes.
For some applications, the electronics, firmware and associated software of an optical disc drive will read the entire subcode data and then transfer it to the host for further processing. However, it is often the case that not all of the subcode data is needed by the host to complete the desired processing. For instance, when CD-text is processed by way of the subcode data, subcode bits P and Q are never of interest. Thus, only subcode bits R through W in actuality will be examined and processed by the host. However, conventional processing will require that all subcode bits P through W be processed by the optical disc drive and then be transferred to the host. Additionally, the firmware or software of the optical disc drive is generally required to perform a cyclic redundancy checksum (CRC) on the subcode data before being transferred to the host.
Although the processing speeds of host computer systems continue to increase, the host will necessarily be delayed in its processing because it must wait unit it has received all 98 correct bytes of subcode data for each sector before it can begin processing the subcode data of interest. This delay can cause consumers to become impatient or dissatisfied with peripheral devices that slow down processing operations, thus reducing the marketability of such devices. Also, some host applications require this subcode processing to be performed by the optical drive rather than by host software.
In view of the foregoing, there is a need for optical disc drive circuitry that can efficiently pre-process and error correct subcode data to avoid the handling of unimportant subcode bits. There is also a need for hardware implementations for efficiently packing important subcode data in order to increase transfer rate efficiently between an optical disc drive and its host.
Broadly speaking, the present invention provides circuitry and methods for efficiently processing subcode data read from an optical disc media. It should be appreciated that the present invention can be implemented in numerous ways, including as a process, an apparatus, a system, a device, a method, or a computer readable medium. Several inventive embodiments of the present invention are described below.
In one embodiment, a subcode processing circuit of an optical disc drive is disclosed. The subcode processing circuit includes a shift register circuit for processing a plurality of standard subcode data bytes that are obtained from an optical disc media of the optical disc drive. The processing is configured to pack the plurality of standard subcode data bytes into a plurality of packed subcode data bytes. In this embodiment, the plurality of packed subcode data bytes is configured to be less than the plurality of standard subcode data bytes. In addition, the shift register circuit is configured to include a plurality of shift registers and a multiplexer to assist in the processing.
In another embodiment, a method for processing subcode data retrieved from a compact disc media is disclosed. The method includes receiving a plurality of standard subcode data bytes and processing the plurality of standard subcode data bytes to generate a plurality of packed subcode data bytes. The plurality of packed subcode data bytes is configured to be fewer than the plurality of standard subcode data bytes. In this embodiment, the processing further includes examining each byte of the plurality of standard subcode data bytes to eliminate selected subcode bits and packing remaining bytes not eliminated during the examining to define the plurality of packed subcode data bytes.
In yet another embodiment, a computer readable media having program instructions for processing subcode data retrieved from an optical disc media is disclosed. The computer readable media includes program instructions for receiving a plurality of standard subcode data bytes and for processing the plurality of standard subcode data bytes to generate a plurality of packed subcode data bytes. The plurality of packed subcode data bytes are configured to be fewer than the plurality of standard subcode data bytes. The program instructions for processing further includes instructions for examining each byte of the plurality of standard subcode data bytes to eliminate selected subcode bits, and instructions for packing remaining bytes not eliminated during the examining process to define the plurality of packed subcode data bytes.
Advantageously, the embodiments of the present invention provide for more efficient processing of subcode data read from an optical disc media. Because the subcode data can include bits that are not of interest for a particular application, such as CD-TEXT applications, it is more efficient to discard subcode bits that are not of interest before transferring the subcode data to the host. In addition, the embodiments of the present invention provide for efficient error correction operations on processed subcode data bytes after the certain bits have been discarded. In one specific example, the subcode bits that are not of interest may be the P and Q subcode bits. The processing of the subcode bits is configured to pack 96 bytes of standard subcode data into 72 bytes of packed subcode data, without losing any of the bits of interest form all 96 bytes.